home *** CD-ROM | disk | FTP | other *** search
- 100 ;:;******** list im programm:;
- 110 ;**** einsprung trace
- 120 ltrace jsr wshift:lda $9a:pha
- 130 lda #3:sta $9a:lda $c7:pha:lda $d4:pha:lda cspalte
- 140 pha :lda czeile:pha:lda cadr:pha:lda cadr+1:pha:lda $d5:pha
- 150 ldx # 0:ldy #0:sty $c7:clc:jsr $fff0
- 170 jsr l9:pla:sta $d5:pla:sta cadr+1:pla:sta cadr
- 180 pla:sta czeile:pla:sta cspalte
- 190 pla:sta $d4:pla:sta $c7:pla :sta $9a
- 200 rts
- 210 ;:;******** zeile mit rev (fehler) listen:;
- 220 l9 lda znr:sta intadr:lda znr+1
- 230 sta intadr+1
- 240 ;**** einsprung find (14/15=znr)
- 250 lfind jsr adrzei:bcc l15;zeile nicht gefunden
- 260 lda intadr+1:ldx intadr
- 270 ;**** einsprung list (a/x=znr,$5f/60=adr)
- 280 llist jsr adrout:lda zeibas:sec:sbc flag5f:tay
- 290 lda zeibas+1:sbc flag5f+1:bne l09a
- 300 tya:cmp #4:bcs l09
- 310 l09a lda #3:l09 sta flagff:ldy # 3
- 320 ;**** einsprung dump ($5f/60=adr-1,flaga b7=1,y=0,flagff=0)
- 330 ldump sty flag49:lda #0:sta hklist
- 335 lda #4:jsr setfla
- 340 lda # 32:l10 ldy flag49:and # 127
- 350 l11 jsr basout:cmp # 34:bne l12
- 360 lda hklist:eor # 255:sta hklist
- 370 l12 iny :beq l15:cpy flagff
- 380 bne l13:lda # 18:sta $c7:lda #1:sta flagff
- 390 bne l14:l13 lda flagff:cmp #1:bne l14:inc flagff:lda # 0
- 400 sta $c7:l14 lda (flag5f),y:beq l15
- 410 l16 bmi l015
- 420 cmp #":":bne l11:bit flaga:bpl l11
- 430 pla:pla:l15 lda #255-4:jsr clrfla:lda #0:rts
- 440 l015 cmp #255:beq l11:bit hklist:bmi l11
- 450 cmp #firscode:bcs nnlist
- 460 sec:sbc #127:tax:sty flag49:ldy # 255:l17 dex
- 470 beq l19:l18 iny :lda oldasc,y
- 480 bpl l18:bmi l17:l19 iny
- 490 lda oldasc,y:bmi l10:jsr basout
- 500 bne l19
- 510 nnlist sec:sbc #firscode-1:tax
- 520 sty flag49:ldy #$ff:n1 dex:beq n3:n2 iny:lda asctab,y
- 530 bpl n2:bmi n1:n3 iny:lda asctab,y
- 540 bpl l010:jmp l10:l010 jsr basout:bne n3
- 550 ;:;******** trace:;
- 560 trace beq tron:cmp #codoff:beq trok:jmp syntax
- 570 trok lda #255-64:jsr clrfl:jmp chrget
- 580 tron lda #64:jsr setfl:rts
- 590 ;**** wait shift/cbm/ctrl
- 600 wshift jsr getstp:beq wsbr:lda flagshft:beq wshift:cmp #2:bne ws2
- 610 ws1 jsr getstp:beq wsbr:lda flagshft:bne ws1
- 620 ws2 rts:wsbr pla:pla:jmp $a82f
- 699 ;:;******** key:;
- 700 key bcc keyd1:bne key1x:jmp keydisp
- 701 beq keydisp
- 705 key1x cmp #codoff:beq keyoff
- 710 cmp #$91;code von 'on':beq keyon:jmp syntax
- 720 keyon lda #32:jsr setfl:bne keo
- 730 keyoff lda #255-32:jsr clrfl:keo jmp chrget:keyrts rts:keyd1 bcc keydef
- 740 keydisp lda #32:bit flag:beq keyrts
- 750 lda #0:sta flagc8
- 760 keyout lda #13:jsr bsout
- 765 lda #"k":jsr bsout:lda #"e":jsr bsout:lda #"y":jsr bsout
- 770 ldx flagc8:inx:lda #0:jsr adrout:lda #",":jsr bsout
- 780 lda #$22;hochkomma:jsr bsout:lda #4:jsr setfla
- 790 lda flagc8:asl:asl:asl:adc flagc8:adc flagc8
- 791 ldx #10:tay:ke1 lda keytext,y:beq key1
- 800 jsr bsout
- 810 iny:dex:bne ke1:key1 lda #255-4:jsr clrfla:lda #34:jsr bsout
- 815 inc flagc8:lda flagc8:cmp #8:bcc keyout
- 820 lda #13:jmp bsout
- 830 keydef jsr getbyt:dex:cpx #8:bcc ke3:keill jmp illquant
- 840 ke3 txa:asl; * lenkey:sta flagc8:asl:asl:adc flagc8
- 845 sta flagc8:jsr prkomma:jsr $ad9e:jsr $b6a3
- 850 cmp #11;lenkey+1:bcc ke4a:jmp strtola
- 855 ke4a sta flagfd
- 860 ke4 ldx flagc8:tay:beq kee2:ldy #0
- 870 ke5 lda (flag22),y
- 877 sta keytext,x
- 880 inx:iny:cpy flagfd:bne ke5
- 885 cpy #10;lenkey:bcs kee1:kee2 lda #0:sta keytext,x:kee1 rts
- 1000 ;:;******** basic:;
- 1010 basic jsr $fd15:jsr $e453:pla:pla:jmp $a7ae
- 1015 ;:;******** exit:;
- 1020 exit ldx #$ff:sei:txs:cld:jmp $fcef
- 1025 ;:;******** screen:;
- 1026 screen .if v&1:jmp syntax:.goto 1099
- 1027 beq schok:jmp syntax
- 1028 schok lda 1:pha:lda #54:sta 1
- 1029 lda 648:sta flagff:lda #$a0:sta flagfd
- 1030 ldy #1:sty flagfc:dey:sty flagfe:jsr scrch
- 1035 lda #$d8:sta flagff:jsr scrch
- 1040 ldx #24:sch1 lda $d9,x:tay:lda $a801,x:sta $d9,x:tya:sta $a801,x
- 1042 dex:bpl sch1:pla:sta 1:lda #0:sta $d3:sta $d6:sta $d1:lda 648:sta $d2
- 1043 lda #39:ldy $da:bmi scheine:lda #79:scheine sta $d5:
- 1044 bit $9d:bmi schdirm:rts
- 1045 schdirm pla:pla:jmp $a47b
- 1050 scrch ldx #4:ldy #0
- 1052 sch2 lda (flagfc),y:pha:lda (flagfe),y:sta (flagfc),y:pla:sta (flagfe),y
- 1054 iny:bne sch2:inc flagfd:inc flagff
- 1056 dex:bne sch2:rts
- 1099 ;:;******** list:;
- 1100 list pha:lda #3:sta devadr:pla
- 1101 cmp #"#";kreuz:bne li1a:jsr chrget:jsr getbyt:stx devadr
- 1102 lda #0:sta lenfnam:sta secadr:beq li1c
- 1103 li1a cmp #34;hochkomma:bne li1b
- 1104 jsr e12l:lda #1:sta secadr:bne li1b
- 1106 li1c jsr chr(NULL)t:beq li1b:jsr prkomma
- 1118 li1b jsr chr(NULL)t:jsr parlist:lda intadr:ora intadr+1:bne li01
- 1119 lda #$ff:sta intadr:sta intadr+1
- 1120 li01 lda devadr:cmp #3:beq li1:lda #14:sta lfn:jsr open:ldx #14:jsr ckout
- 1121 li1 ldy #1:sty $0f:lda (flag5f),y:beq liend
- 1130 lda $91:cmp #$7f:beq liend:jsr $aad7:iny:lda (flag5f),y
- 1140 tax:iny:lda (flag5f),y:cmp intadr+1:bne li2:cpx intadr
- 1150 beq li3:li2 bcs liend:li3 jsr llist:tay
- 1160 lda (flag5f),y:tax:iny:lda (flag5f),y
- 1170 stx flag5f:sta flag5f+1:jmp li1
- 1180 liend lda devadr:cmp #3:bne lie1:rts:lie1 lda #13;cr:jsr bsout
- 1182 jsr clrch:lda #14:jmp close;jmp $e386
- 1200 ;:;******** set + time/alarm:;
- 1210 set cmp #codtime:beq settime:cmp #codalarm:beq setalarm
- 1220 jmp syntax
- 1221 aloff lda flag:and #127:aal1 sta flag:jmp chrget
- 1222 alon lda flag:ora #128:bne aal1
- 1230 setalarm lda #128:jsr setfl:lda #%10000100:sta ciati+13
- 1235 lda ciati+15:ora #128;alarm-bit setzten:bne set1
- 1240 settime lda ciati+15:and #127;fuer time vorbereiten
- 1250 set1 sta ciati+15:lda ciati+14:ora #128:sta ciati+14;50 hz triggern
- 1260 jsr chrget:cmp #codoff:beq aloff:cmp #codon:beq alon
- 1268 jsr $ad9e:jsr $b6a3:cmp #7:beq set2:jmp illquant
- 1270 set2 ldy #0:jsr sethour:jsr setmin:sta ciati+10:jsr setmin
- 1280 sta ciati+9:jsr setnib:sta ciati+8
- 1290 lda #0:sta ciati+13:rts
- 1300 sethour jsr setmin:sed:cmp #$13:bcc sethok
- 1310 sec:sbc #$12:ora #128
- 1320 sethok cld:sta ciati+11:lda #0:sta ciati+13:rts
- 1330 setmin jsr setnib:asl:asl:asl:asl:sta flagfb:jsr setnib
- 1340 ora flagfb:setmok rts
- 1350 setnib lda (flag22),y:iny:sec:sbc #"0"
- 1360 cmp #10:bcc setmok:jmp illquant
- 1400 time lda #7:jsr $b47d:ldy #0:jsr gethour:lda ciati+10:jsr getmin
- 1405 lda ciati+9:jsr getmin
- 1410 lda ciati+8:jsr getnib:jmp $b4ca
- 1420 gethour lda ciati+11:tax:and #$7f:cmp #$12:bne geth1
- 1430 txa:eor #$80:tax:geth1 txa
- 1435 bpl getmin:and #$7f:sed:clc:adc #$12:cld
- 1440 getmin pha:lsr:lsr:lsr:lsr:jsr getnib:pla
- 1450 getnib and #15:clc:adc #"0":sta ($62),y:iny:rts
- 1460 alarm bit flag:bpl alend
- 1461 lda 53280:pha:lda #6:sta 53280
- 1462 lda #<1000:sta $d400:lda #>1000:sta $d401
- 1464 lda #15:sta $d418:lda #%11110000:sta $d406:lda #0:sta $d405
- 1466 lda #%00100001:sta $d404
- 1470 al1 lda #0:sta $c6:sta 53280:jsr $ea87:lda #3:sta 53280
- 1475 cmp $0277:bne al1:lda #0:sta $d404:sta $d418:pla
- 1479 sta 53280
- 1480 alend jmp $ea7e
- 2000 if jsr $ad9e:jsr chr(NULL)t:cmp #$89
- 2005 beq if1:lda #$a7:jsr $aeff
- 2010 if1 lda $61:bne if2:jmp $a93b
- 2015 if2 jsr chr(NULL)t:bcs if3:jmp $a8a0
- 2030 if3 pla:pla:jsr chr(NULL)t:jmp l44+3
- 2100 ;:;******** colour:;
- 2110 colour cmp #",":beq col2:jsr getbyt:stx 53280:beq colrts
- 2115 col2 jsr prkomma:cmp #",":beq col1
- 2120 jsr getbyt:stx 53281:beq colrts:col1 jsr prkomma
- 2130 jsr getbyt:stx 646:colrts rts
-